Many computing devices allow touch-based input, such as notebook computers, smart phones and tablet computers. Some of these devices also offer gesture-based input, where a gesture involves the motion of a user's hand, finger, body, etc. An example of a gesture-based input is a downwards stroke on a touch-sensor which may translate to scrolling the window.
Multi-touch gesture-based interaction techniques are also becoming increasingly popular, where the user interacts with a graphical user interface using more than one finger to control and manipulate a computer program. An example of a multi-touch gesture-based input is a pinching movement on a touch-sensor which may be used to resize (and possibly rotate) images that are being displayed.
To enable gesture-based interaction, these computing devices comprise gesture recognizers in the form of software which translates the touch sensor information into gestures which can then be mapped to software commands (e.g. scroll, zoom, etc). These gesture recognizers operate by tracking the shape of the strokes made by the user on the touch-sensor, and matching these to gesture templates in a library. However, this technique is complex and hence either uses a significant amount of processing or is slow and results in a gesture recognition lag. Furthermore, the technique can be inaccurate if the shape matching is not precise, leading to unintended commands being executed.
Furthermore, as the popularity of multi-touch input increases, new types of multi-touch input devices are also being developed. For example, multi-touch mouse devices have been developed that combine touch input with traditional cursor input in a desktop computing environment. However, these new devices bring with them new constraints and requirements in terms of gesture recognition. For example, in the case of multi-touch mouse devices, the user is holding, picking up and moving the device in normal use, which results in incidental or accidental inputs on the touch-sensor. Current gesture recognizers do not distinguish between incidental inputs on the touch-sensor and intentional gestures.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known gesture recognition techniques.